package com.caio.svn;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import java.util.Scanner;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.script.ScriptException;

import com.caio.svn.excption.ScriptInvalidoExcption;
import com.caioweb.osa.modelo.Parametro;
import com.mysql.jdbc.Util;

public class UtilSvn {

	public synchronized static String lerArquivo(String url) throws ScriptInvalidoExcption {
		StringBuilder sb = new StringBuilder();
		try {

			File file = new File(url);
			FileInputStream in = new FileInputStream(file);
			Scanner scanner = new Scanner(in);

			while (scanner.hasNext()) {
				sb.append(scanner.next());
			}
			scanner.close();
		} catch (Exception e) {
			UtilSvn.mensagem("Verificar se existe conexao com o SVN, e se o mesmo esta em portugues," +
					"		  , ou as permicoes de usuario na pasta "+ Configuracoes.DIR_HOME, true);
			throw new ScriptInvalidoExcption();
		}

		return sb.toString();
	}
	
	

	public static String nomeAleatorio() {
		Random rand = new Random();
		char[] letras = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789".toCharArray();
		int nCaracteres = 10;
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < nCaracteres; i++) {
			int ch = rand.nextInt(letras.length);
			sb.append(letras[ch]);
		}
		return sb.toString();
	}
	
	public static boolean criaDiretorio(String url){
	    File diretorio = new File(url); 
	    if (!diretorio.exists()) {  
	       diretorio.mkdirs(); //mkdir() cria somente um diretório, mkdirs() cria diretórios e subdiretórios.  
	    } else {  
	       return false;
	    }  
		return true;
	}
	public static boolean criaArquivo(String url) throws IOException{
	    File arquivo = new File(url); 
	    if (!arquivo.exists()) {  
	       arquivo.createNewFile(); 
	    } else {  
	       return false;
	    }  
		return true;
	}
	
	
	public static String getDate(long l){
		SimpleDateFormat sd = new SimpleDateFormat("dd-MM-yyyy-hh-mm-ss-ms");
		return sd.format(new Date(l));		                    
	}
	
	public static boolean mensagem(String mensagem,boolean condicao){
		if(condicao){
        FacesContext context = FacesContext.getCurrentInstance();
       context.addMessage(null, new FacesMessage(mensagem));
		}
		return condicao;
	}

}
